In computing systems, computer processes and services commonly require configuration values and connection strings for operation. Computer services are often dispersed in various configuration files, registry values, web pages, or data source name (DSN) entries. Computer processes and services commonly require configuration files to store process and service settings. When processes and services are installed onto a computer, a configuration file is created to define values of certain parameters necessary for the process and service to function correctly. During execution, the process or service accesses the configuration file to retrieve the appropriate parameters. Such configuration files commonly include initialization files, management information format files, and the registry. The registry, for example, is a central database that stores information in a hierarchy in order to allow the system to accommodate one or more users, processes, or hardware devices. Processes and services constantly access the registry to reference, for example, user profiles, a list of processes installed on the system and the document types each process can utilize, property sheet settings, a list of hardware connected to the system, and a list of accessible ports.
While storing configuration values and connection strings in registry values, data files, web pages, and data source name entries satisfies the needs for such information, computer systems typically depend on configuration files that are designed specifically for processes or services and that may reside on remote systems. The specifically designed configuration files do not allow for real-time updates thereof without service interruption, do not allow immediate access to configuration values, and do not enable uniformity between different services. Computing systems, particularly server systems, require immediate access to configuration values and connection strings in order to provide acceptable response times to client side requests.
Computer systems that share memory between multiple processes or services require a mechanism to protect the integrity of the shared resources. Computer systems often lock files being accessed or updated to ensure mutually exclusive access to the files. The locking of files prevents two services from modifying a file at the same time which might lead to corrupted data in the files. A downside of locking files is that when another service needs to access the file, the service may have to wait until the file has been unlocked by the first service. Additionally, multiple users on the same computer system present security problems with shared memory and the data stored therein. The shared memory must not allow unauthorized users to access sensitive data.
Accordingly, there is a need in the art for a unified system and method for storing server-side configuration data for multiple computer services.
There is also a need in the art for a unified system and method for updating server-side configuration data for multiple computer services while ensuring that data updates do not interrupt services accessing the configuration data.
Additionally, there is a need in the art for a system and method to manage non-locked shared memory to store settings for multiple processes.
Further, there is a need in the art for a system and method for controlling access to portions of shared memory data to particular computer accounts.